package com.xbongbong.pro.rabbitmq.feign;

import com.xbongbong.paas.toolbox.wrap.XbbResponse;
import com.xbongbong.pro.message.pojo.dto.MessageRabbitMqDTO;
import com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * jxc 内部调用接口(消息用)
 * @author 魏荣杰
 * @date 2019/2/25 15:23
 * @since v1.0
 * @version v1.0
 */
@FeignClient(name = "pro-web-pc",contextId = "jxcFeignClient")
public interface JxcFeignClient {
    //****************************************** 供应商 ******************************************************//
    /**
     * Description: 供应商新建 消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:29
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/supplier/add", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> supplierAdd(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    /**
     * Description: 供应商添加/删除负责人 消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:29
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/supplier/teamMain", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> supplierTeamMain(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    /**
     * Description: 供应商添加/删除协同人 消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:29
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/supplier/teamSynergetic", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> supplierTeamSynergetic(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    //****************************************** 采购合同 ******************************************************//
    /**
     * Description: 待采购推送 消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:29
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/purchase/waitPurchasePush", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> waitPurchasePush(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    /**
     * Description: 采购成功提醒 消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:29
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/purchase/purchaseSuccessPush", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> purchaseSuccessPush(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    /**
     * Description: 采购合同添加/删除负责人 消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:29
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/purchase/teamMain", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> purchaseTeamMain(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    /**
     * Description: 采购合同添加/删除协同人 消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:29
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/purchase/teamSynergetic", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> purchaseTeamSynergetic(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);


    //****************************************** 出库单 ******************************************************//
    /**
     * Description: 待出库提醒 消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:29
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/outstock/waitOutstockPush", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> waitOutstockPush(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    /**
     * Description: 出库成功提醒 消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:29
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/outstock/outstockSuccessPush", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> outstockSuccessPush(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    //****************************************** 入库单 ******************************************************//
    /**
     * Description: 待入库提醒 消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:29
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/instock/waitInstockPush", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> waitInstockPush(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    /**
     * Description: 入库成功提醒 消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:29
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/instock/instockSuccessPush", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> instockSuccessPush(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    //****************************************** bom ******************************************************//
    /**
     * Description: bom添加/删除负责人 消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:29
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/bom/teamMain", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> bomTeamMain(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    /**
     * Description: bom添加/删除协同人 消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:29
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/bom/teamSynergetic", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> bomTeamSynergetic(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    //****************************************** 生产单 ******************************************************//
    /**
     * Description: 生产单添加/删除负责人 消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:29
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/productionOrder/teamMain", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> productionOrderTeamMain(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);
    /**
     * Description: 生产单添加/删除协同人消息接口
     * @param messageRabbitMqDTO 消息推送  走消息队列，用于传输数据的
     * @return com.xbongbong.paas.toolbox.wrap.XbbResponse<com.xbongbong.pro.message.pojo.vo.MessageRabbitMqVO>
     * @author 魏荣杰
     * @date 2019/2/27 17:29
     * @since v1.0
     */
    @RequestMapping(value = "/pro/v1/message/mq/productionOrder/teamSynergetic", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    XbbResponse<MessageRabbitMqVO> productionOrderTeamSynergetic(@RequestBody MessageRabbitMqDTO messageRabbitMqDTO);

}
